VPC 간에 보안 그룹을 공유할 수 있게 되었습니다
안녕하세요 클래스메소드의 이수재입니다.
24년 10월 30일에 보안 그룹을 다른 VPC의 리소스와 공유할 수 있게 되었다는 아나운스가 공개되었습니다.
어떤 내용이 바뀌었고 무엇이 가능한지 알아보도록 하겠습니다.
공식 아나운스
업데이트 내용은 간단합니다.
업데이트 이전까지 보안 그룹은 작성된 VPC와 동일한 리소스에만 연결 할 수 있었습니다.
하지만 이번 업데이트를 통해 다른 VPC의 리소스에도 보안 그룹을 사용할 수 있게 바뀌었습니다.
모든 보안 그룹이 연결가능한 것은 아니며 공유를 설정한 보안 그룹만 다른 VPC에서 확인이 가능합니다.
공유하기 위한 조건은 다음과 같습니다
- 보안 그룹을 VPC와 연결하려면 VPC를 소유하거나 VPC 서브넷 중 하나를 공유해야 합니다.
- VPC와 보안 그룹은 동일한 AWS 리전에 있어야 합니다.
- 이 기능은 기본 보안 그룹이 아닌 보안 그룹에서만 사용할 수 있습니다.
- 기본 VPC에서 생성된 보안 그룹에는 이 기능을 사용할 수 없습니다. 기본이 아닌 VPC와 연결된 보안 그룹에만 이 기능을 사용할 수 있습니다.
- 보안 그룹 소유자와 VPC 소유자 모두 보안 그룹 VPC 연결을 볼 수 있습니다.
설정 방법
아래의 예는 vpc-0d5-- 라는 VCP에 작성된 보안 그룹 testallow 를 다른 VPC의 EC2 인스턴스에서도 사용할 수 있도록 하는 방법에 대해서 설명합니다.
콘솔
콘솔에서는 다음과 같이 설정합니다.
- VPC 콘솔의 보안 그룹에 접속합니다. 이후 대상으로 하는 보안 그룹을 선택합니다.
- 새로 추가된 VPC 연결을 선택합니다.
- 공유를 원하는 VPC를 선택하여 공유합니다.
- 콘솔에 상태 가 연결됨 으로 변경되어 있는 것을 확인합니다.
- 대상 리소스에서 보안 그룹에 연결할 수 있는지 확인합니다.
CLI
associate-security-group-vpc 명령어를 이용하여 보안 그룹을 공유합니다.
aws ec2 associate-security-group-vpc --group-id sg-03ccXXXXXXXX --vpc-id vpc-07599XXXXXXXX
이 후 공유된 보안 그룹의 ID를 지정하여 리소스를 작성하면 다른 VPC 에서도 보안 그룹이 사용가능해집니다.
# test.json
{
"ImageId": "ami-08ce76bae392de7dc",
"InstanceType": "t2.micro",
"KeyName": "publicTestKey",
"SecurityGroupIds": [
"sg-03ccXXXXXXXX"
],
"SubnetId": "subnet-0351XXXXXXXX"
}
aws ec2 run-instances --cli-input-json file://test.jso
결과
아래와 같이 다른 VPC의 보안 그룹이 적용된 것을 확인할 수 있습니다.
EC2의 VPC는 vpc-07599~
해당 EC2에 연결되어 있는 testallow
해당 보안 그룹은 vpc-0d56~에 작성되어 있다
언제 쓰면 좋을까?
다수의 VPC를 사용하는 계정 혹은 조직에서 공통으로 제한해야하는 보안 그룹 설정이 있다면 중앙 집중적으로 설정하기 편하기 때문에 이러한 경우 사용하면 좋다고 생각합니다.
또한 하나의 계정 안에서 VPC 별로 똑같은 설정이 되어 있던 것을 하나로 정리하는데도 사용할 수 있다고 생각합니다.
마무리
편한 기능이 추가되어 다행이라고 생각합니다.
덕분에 중복된 설정을 가진 보안 그룹을 많이 줄일 수 있겠네요!
긴 글 읽어주셔서 감사합니다.
오탈자 및 내용 피드백은 must01940 지메일로 보내주시면 감사합니다.